package cn.com.yx.ms.persistence;

import cn.com.yx.ms.domain.dbmodel.ModelControl;
import cn.com.yx.ms.domain.dbmodel.ModelMain;
import cn.com.yx.ms.domain.dbmodel.StlModelMainMap;
import cn.com.yx.ms.domain.dev.DevTemplate;
import cn.com.yx.ms.domain.model.ModelControlMapModel;
import cn.com.yx.ms.domain.model.ModelMainModel;
import cn.com.yx.ms.domain.template.DevNoticeModel;
import cn.com.yx.ms.domain.template.DevRegionModel;
import cn.com.yx.ms.domain.template.DevResourceModel;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ModelMainMapper {
    int deleteByPrimaryKey(String guid);

    int insert(ModelMain record);

    int insertSelective(ModelMain record);

    ModelMain selectByPrimaryKey(String guid);

    int updateByPrimaryKeySelective(ModelMain record);

    int updateByPrimaryKey(ModelMain record);

    /**
     * 根据式样ID获取设备和模板集合
     *
     * @param styleid
     * @return
     */
    List<DevTemplate> findDevTemplates(@Param("devid") String devid, @Param("styleid") String styleid);

    /**
     * 获取设备默认模板对应最新区域集合
     *
     * @param devid
     * @return
     */
    List<DevRegionModel> findDevRegions(String devid);

    /**
     * 获取设备默认模板下对应的资源
     *
     * @param devid
     * @return
     */
    List<DevResourceModel> findDevResource(String devid);

    /**
     * 获取设备通知公告
     *
     * @param devid
     * @return
     */
    List<DevNoticeModel> findDevNotice(String devid);

    List<ModelControl> findAllModelMainList(List<String> guids);

    List<ModelMainModel> findAllModelMain(ModelMainModel modelMain);

    /**
     * 获取所有区域数据
     * @return
     */
    List<ModelControlMapModel> findAllModelControlMapModel();

    List<ModelMain> findModels();

    int disableModelMain(String guid);

    List<ModelMainModel> findModelMainList(List<String> list);

    List<ModelMainModel> selectByNoAndNameAndSortid(ModelMainModel modelMainModel);

    List<ModelMainModel> findAllModelMainControl(ModelMainModel modelMainModel);

    List<ModelMainModel> findModelMainControlByStyleId(@Param("styleid") String styleid);

    int updateDeleteByPrimaryKey(String guid);

    ModelMain findDefaultModelByStyleId(String styleid);

    /**
     * 根据式样的名称找到式样
     */
    ModelMain selectByName(@Param("name") String name);

    StlModelMainMap selectByStlModelMainMap(StlModelMainMap stlModelMainMap);


    int updateByStlModelMainMap(StlModelMainMap stlModelMainMap);

    List<StlModelMainMap> selectByStyleid(@Param("styleid")String styleid);

    int updateByStyleid(@Param("styleid") String styleid);

    int selectCountModel(@Param("guid")String guid );
}